Summary
attributes, attr, class, methods, UseMethod, getAnywhere
attributes
Print attributes of an object.
attr
change attributes of an object.
class
change class of an object.
methods
Print methods in a generic function.
UseMethod
Constructing a generic function.
GF <- function(x, ...) UseMethod('GF')
getAnywhere
find a function
Examples
#------------- Create a generic method
> whoami <- function(x, ...) UseMethod("whoami")
> whoami.foo <- function(x) print("I am a foo")
> whoami.bar <- function(x) print("I am a bar")
> whoami.default <- function(x) print("I don't know who I am")
> a = 1:10
> b = 2:20
> whoami(a) # No class assigned
[1] "I don't know who I am"
> attr(a,'class') <- 'foo'
> attr(b,'class') <- c('baz','bam','bar')
> whoami(a)
[1] "I am a foo"
> whoami(b) # Search MRO for defined method
[1] "I am a bar"
> attr(a,'class') <- 'bar' # Change the class of 'a'
> whoami(a)
[1] "I am a bar"
Golden rule
- eveything is an object, a vector
- DO NOT call methods directly, instead use a generic function, which dispatches methods to objects according to their classes.
Concepts
-
Inheritance: A way to form new classes using classes that have already been defined.
class(x) = c('newClass', class(x))
References
http://www.ibm.com/developerworks/linux/library/l-r3/index.html#N10139 http://brainimaging.waisman.wisc.edu/~perlman/R/A1%20Introduction%20to%20object-oriented%20programming.pdf
Hide Comments